package com.dd.cloud.user.service.phar.pharservice;

import com.dd.cloud.user.DTO.CallbackPresStatusReq;
import com.dd.cloud.user.DTO.CancelPresReq;
import com.dd.cloud.user.DTO.CommonParamReq;
import com.dd.cloud.user.entity.doctor.PatientMedCard;
import com.dd.cloud.user.entity.order.OrderPay;
import com.dd.cloud.user.req.pres.PresCreateReq;
import com.dd.cloud.user.req.pres.PresPatientAddrReq;
import com.dd.cloud.user.vo.ExpressRes;

import java.util.List;

/**
 * 药房处理接口类
 *
 * @ClassName: PharInterface
 * @Author: czg
 * @Date: 2022/11/25 16:28
 * @Version: 1.0
 */
public interface PharServiceInterface {
    /**
     * 添加处方详情
     *
     * @param req:
     * @param medCard:
     * @author czg
     * @date 2022/12/5 15:45
     */
    void addPresDetail(PresCreateReq req, PatientMedCard medCard);

    /**
     * 发送处方到药房
     *
     * @param pay:
     * @author czg
     * @date 2022/12/5 15:45
     */
    boolean sendPresToPhar(OrderPay pay);

    /**
     * 取消处方
     *
     * @param req:
     * @author czg
     * @date 2022/12/2 9:36
     */
    void cancelPres(CancelPresReq req);

    /**
     * 处方状态回调
     *
     * @param req:
     * @return void
     * @author czg
     * @date 2022/12/5 14:05
     */
    Object presCallback(CallbackPresStatusReq req);

    /**
     * 物流信息回调
     *
     * @param req:
     * @return void
     * @author czg
     * @date 2022/12/5 15:46
     */
    Object expressCallback(CommonParamReq req);

    /**
     * 修改收货人信息
     *
     * @param req
     */
    void updatePresPatientAddrInfo(PresPatientAddrReq req);

    /**
     * 查询物流信息
     *
     * @param tencode
     * @return
     */
    List<ExpressRes> queryLogisticsInfo(String tencode);

}
